/**
 * Copyright (C), 2001-2031, www.bosssof.com.cn
 * FileName: Enum.java
 * Author: YuXingZh
 * Date: 16/5/2024 上午10:42
 * Description:
 * <p>
 * History:
 * Date          Author   Version  Desc
 * 2024-01-01    bosssoft  1.0.0   initialize this file
 */
package org.boss.exception;

/**
 * 文件加密解密异常类。
 * @className: FileEncryptionException
 * @description: 自定义异常类，用于处理文件加密和解密过程中的特定异常情况。
 * 解决什么问题：
 *  在文件加密和解密过程中，可能会遇到密码错误、文件损坏、不支持的加密算法等异常。
 *  此类允许开发者捕获并处理这些特定的异常情况，而不是使用通用的Exception处理。
 * 主要方法：
 *  构造方法1: 使用错误信息创建异常实例，适用于具体错误信息已知的情况。
 *  构造方法2: 使用错误信息和另一个异常的原因创建异常实例，适用于异常是由另一个异常引起的情况。
 * @author: zhuchen
 * @date: 2024年05月15日 15:30
 * @since 1.0
 */

public class FileEncryptionException extends Exception {
    private final BizCodeEnum errorCode;

    /**
     * 使用指定错误信息构造一个新的异常。
     *
     */
    public FileEncryptionException(BizCodeEnum errorCode) {
        super(errorCode.getDescription());
        this.errorCode = errorCode;
    }

    /**
     * 使用指定错误信息和原因构造一个新的异常。
     *
     * @param message 异常发生时的描述信息
     * @param errorCode   异常发生的原因
     */
    public FileEncryptionException(String message, BizCodeEnum errorCode) {
        super(message);
        this.errorCode = errorCode;
    }

    public BizCodeEnum getErrorCode() {
        return errorCode;
    }
}